/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;

import clases.TipoMovimientoCaja;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author root
 */
public class MdlTipoMovimientoCaja implements Modelo<TipoMovimientoCaja>{

    /**
     * 
     * @param tipomovimientocaja
     * @param cnx
     * @throws SQLException 
     */
    @Override
    public void insert(TipoMovimientoCaja tipomovimientocaja, Conexion cnx) throws SQLException {
        String sql = "INSERT INTO tipoMovimientoCaja(descripcion, tipo) "
                + "VALUES('" + tipomovimientocaja.getDescripcion() + "', "
                + "'" + tipomovimientocaja.getTipo() + "');";
       cnx.ejecutar(sql);
    }
    
    /**
     * 
     * @param cnx
     * @return
     * @throws SQLException 
     */
    @Override
    public int getLastId(Conexion cnx) throws SQLException {
        String sql = "SELECT MAX(idTipoMovimientoCaja) FROM tipoMovimientoCaja;";
        ResultSet rs = cnx.consultar(sql);
        if (rs.next()) {
            return rs.getInt(1);
        }
        return -1;
    }

    /**
     * 
     * @param tipomovimientocaja
     * @param cnx
     * @throws SQLException 
     */
    @Override
    public void update(TipoMovimientoCaja tipomovimientocaja, Conexion cnx) throws SQLException {
        String sql = "UPDATE tipoMovimientoCaja SET "
                + "descripcion = '" + tipomovimientocaja.getDescripcion() + "', "
                + "tipo = '" + tipomovimientocaja.getTipo() + "' "
                + "WHERE idTipoMovimientoCaja = " + tipomovimientocaja.getIdTipoMovimientoCaja();
        cnx.ejecutar(sql);
    }

    /**
     * 
     * @param query
     * @param cnx
     * @return
     * @throws SQLException 
     */
    @Override
    public ArrayList<TipoMovimientoCaja> get(String query, Conexion cnx) throws SQLException {
        ResultSet rs = cnx.consultar(query);
        ArrayList<TipoMovimientoCaja> tipos;
        tipos = new ArrayList();
        while (rs.next()) {
            tipos.add(new TipoMovimientoCaja(rs.getInt(1), rs.getString(2),rs.getString(3).charAt(0)));
        }
        return tipos;
    }

    /**
     * 
     * @param id
     * @param cnx
     * @return
     * @throws SQLException 
     */
    @Override
    public TipoMovimientoCaja get(int id, Conexion cnx) throws SQLException {
        String sql = "SELECT * FROM tipoMovimientoCaja where idTipoMovimientoCaja = " + id;
        ResultSet rs = cnx.consultar(sql);
        TipoMovimientoCaja tipo = null;
        if (rs.next()) {
            tipo = new TipoMovimientoCaja(rs.getInt(1), rs.getString(2), rs.getString(3).charAt(id));
        }
        return tipo;
    }
    
}
